package com.jt.provider.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalTime;

/**
 * 遵循spring mvc规范，自定义拦截器，对要访问controller方法的请求进行拦截。
 * 然后可以基于业务对请求进行一个预处理。例如进行时间访问控制（类似12306订票系统）
 */
public class TimeInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response,
                             Object handler) throws Exception {
        System.out.println("==preHandle==");
        LocalTime now  = LocalTime.now();
        int hour = now.getHour();
        if (hour<9||hour>18)
//        if (hour<10||hour>18)//报错，当前时间不在时间范围内
            throw new RuntimeException("请在9~18点之间访问");
        return true;//true表示放行
    }
}
